"""
example01 - 全局变量和局部变量

全局变量（没有写在任何函数里面的变量）
局部变量（定义在函数内部的变量）

Python程序中搜索一个变量是安装LEGB顺序进行搜索的

Local(局部作用域) ---> Embeded(嵌套作用域) ---> Global(全局作用域) ---> Built-in(内置作用域)

global ---> 声明使用全局变量或定义一个局部变量将其放到全局作用域
nonlocal ---> 声明使用嵌套作用域的变量（不使用局部变量）

Author: Administrator
Date: 2024/1/18
"""
import random

import random


def generate(ball_max, ball_num):
    """
    选中一组随机的球

    :param ball_max: 球的最大值
    :param ball_num: 球的数量
    :return: 保存一组球的列表
    """
    red_balls = [i for i in range(1, ball_max+1)]
    selected_balls = random.sample(red_balls, ball_num)
    selected_balls.sort()
    return selected_balls


def make_big_lottery():
    """生成大乐透"""
    return generate(35, 5) + generate(12, 2)


def make_two_colors():
    """生成双色球"""
    return generate(33, 6) + generate(12, 1)


def display(balls, red_ball_num=6):
    """
    显示一组彩票号码

    :param balls: 装彩票号码对应球的列表
    :param red_ball_num: 红色球的数量
    """
    for ball in balls[:red_ball_num]:
        print(f'{ball:0>2d}', end=' ')
    print('|', end=' ')
    for ball in balls[red_ball_num:]:
        print(f'{ball:0>2d}', end=' ')
    print()


n = int(input('机选几注：'))
print('双色球：')
for _ in range(n):
    display(make_two_colors())

print('大乐透：')
for _ in range(n):
    display(make_big_lottery(), 5)